import { defineConfig } from 'umi';
import proxy from './proxy';
import routes from './routes';
import defaultSettings from './defaultSettings';

export default defineConfig({
  proxy,
  routes,
  antd: {},
  antdMobile: {},
  hash: true,
  locale: {},
  layout: {
    locale: false,
    siderWidth: 232,
  },
  fastRefresh: {},
  dva: { hmr: true },
  targets: { ie: 11 },
  inlineLimit: 300000, // 图片base64编译的阈值 300k
  favicon: 'favicon.ico',
  ignoreMomentLocale: true,
  manifest: { basePath: '/' },
  title: defaultSettings.title,
  theme: { 'root-entry-name': 'variable' },
  externals: { './cptable': 'var cptable' }, // 设置该模块不被打包
  dynamicImport: { loading: '@/components/PageLoading' }, // 路由页面加载loading
  metas: [
    {
      name: 'expires',
      content: new Date().toUTCString(),
    },
    {
      name: 'wechat-management-system-version',
      content: '1.0.0',
    },
    {
      name: 'viewport',
      content: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0',
    },
  ],
  define: {
    ENCRYPTION_PARAMS: true, // 是否加密报文
    REACT_APP_EXTRA_LOGIN: true, // 是否开启额外的登录方式
    REACT_APP_DRAGGABLE_MODAL: true, // 是否开启拖拽弹窗 (开发中需要使用"@/components/DraggableModal"组件来代替antD的Modal组件)
    REACT_APP_DRAGGABLE_MODAL_RESET: true, // REACT_APP_DRAGGABLE_MODAL开启后生效，设置拖拽弹窗重新打开后是否恢复初始位置（当前是通过设置Modal.destroyOnClose实现的，后期需整改实现方案）
    REACT_APP_EFFECTIVE_CHECK: true, // 是否开启在一定时间无操作后自动退出
    REACT_APP_EFFECTIVE_TIME: 60 * 3, // REACT_APP_EFFECTIVE_CHECK开启后生效，设定无操作的上限时间（单位：min）
    REACT_APP_DEBOUNCE_WAIT_TIMER: 500, // 防抖点击的延迟时间（单位：ms）
    REACT_APP_DEFAULT_SETTING_PASSWORD: true, // 是否强制用户修改初始密码（即在密码未成功修改下弹窗无法关闭）
  },
});
